<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Code Complete</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Code_Complete"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Code_Complete rootpage-Code_Complete skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><i>Code Complete</i></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">This article is about the software development book. For the software release life cycle stage "code complete", see <a href="Software_release_life_cycle" title="Software release life cycle">Software release life cycle</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1287740527">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ib-book .infobox-title{font-style:italic;padding-bottom:0.2em}.mw-parser-output .ib-book .Z3988{display:none}.mw-parser-output .ib-book .infobox-below{border-top:#aaa 1px solid}
/* end https://en.wikipedia.org/ */
</style><table class="infobox ib-book vcard"><caption class="infobox-title">Code Complete </caption><tbody><tr><td colspan="2" class="infobox-image"><div class="infobox-caption">First edition cover</div></td></tr><tr><th scope="row" class="infobox-label">Author</th><td class="infobox-data"><a href="Steve_McConnell" title="Steve McConnell">Steve McConnell</a></td></tr><tr><th scope="row" class="infobox-label">Language</th><td class="infobox-data">English</td></tr><tr><th scope="row" class="infobox-label">Subject</th><td class="infobox-data"><a href="Computer_programming" title="Computer programming">Computer programming</a></td></tr><tr><th scope="row" class="infobox-label">Published</th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style><div class="plainlist">
<ul><li>1993 (1st ed.)</li>
<li>2004 (2nd ed.)</li></ul>
</div></td></tr><tr><th scope="row" class="infobox-label">Publication place</th><td class="infobox-data">United States</td></tr><tr><th scope="row" class="infobox-label">Pages</th><td class="infobox-data">914 (2nd ed.)</td></tr><tr><th scope="row" class="infobox-label"><a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><bdi>978-0-7356-1967-8</bdi> (2nd ed.)</td></tr><tr><th scope="row" class="infobox-label"><a href="LCC_(identifier)" class="mw-redirect" title="LCC (identifier)"><abbr title="Library of Congress Classification">LC Class</abbr></a></th><td class="infobox-data">QA75.5-76.95</td></tr></tbody></table>
<p><i><b>Code Complete</b></i> is a <a href="Software_development" title="Software development">software development</a> book, written by <a href="Steve_McConnell" title="Steve McConnell">Steve McConnell</a> and published in 1993 by <a href="Microsoft_Press" title="Microsoft Press">Microsoft Press</a>, encouraging developers to continue past <a href="Software_development_process#Code_and_fix" title="Software development process">code-and-fix</a> programming and the <a href="Big_design_up_front" title="Big design up front">big design up front</a> and <a href="Waterfall_model" title="Waterfall model">waterfall models</a>. It is also a compendium of software construction techniques, which include techniques from naming variables to deciding when to write a subroutine.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Summary">Summary</h2></div>
<p>McConnell defines the main activities in software construction as detailed <a href="Software_design" title="Software design">design</a>, construction planning, coding and debugging, <a href="Unit_testing" title="Unit testing">unit testing</a>, <a href="Software_integration" class="mw-redirect" title="Software integration">integration</a> and <a href="Integration_testing" title="Integration testing">integration testing</a>. Although he does not dismiss the value of other aspects of software development such as requirements and documentation, McConnell emphasises the construction of software due to several reasons. Within the view of the book, construction is a large part of software development, as the central activity within software development and can significantly improve the productivity of a programmer when focus is directed towards it; in addition, the source code is seen as defining the operation of the software, with documentation implicated when code and documentation are opposed. Lastly, the book contends that construction is the exclusive activity which is guaranteed to remain completed.
</p><p>The techniques of a good programmer are also given throughout the book. The whole part seven of the book is about software craftsmanship (layout, style, character, themes and self-documentation).<sup id="cite_ref-blogger_Kai_1-0" class="reference"><a href="#cite_note-blogger_Kai-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>The other six parts of the book are: laying the foundation, creating high-quality code, variables, statements, code improvements and system considerations.
</p>
<div class="mw-heading mw-heading2"><h2 id="Review">Review</h2></div>
<p><i>Code Complete</i> has received outstanding reviews, being widely regarded as one of the leading must-reads for software developers.<sup id="cite_ref-ACM_2-0" class="reference"><a href="#cite_note-ACM-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> It won a <a href="Jolt_Awards" class="mw-redirect" title="Jolt Awards">Jolt Award</a> in 1993.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>There are also negative reviews about the length and style of the book,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> which runs to over 900 pages and goes into detail on many topics.
</p><p>The first edition has been superseded by <i>Code Complete 2</i>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The first editions can be found used and are still relevant for programmers using C, Pascal and GW-BASIC <sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Editions">Editions</h2></div>
<ul><li><a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-55615-484-3</bdi> First edition (1993)</li>
<li><a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-7356-1967-8</bdi> Second edition (June 2004)<sup id="cite_ref-ACM_2-1" class="reference"><a href="#cite_note-ACM-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-blogger_Kai-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-blogger_Kai_1-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://programmers.stackexchange.com/questions/2777/what-are-the-key-points-of-code-complete">"What are the key points of Code Complete?"</a>. 2010-09-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-06-28</span></span>. <q>But the most important take-aways are in Chapter 33, Personal Character: once you consciously seek to improve as a coder, you can and will. The fastest way to do so is to take on the attitudes of master coders (humility, curiosity, intellectual honesty, discipline, creativity), while also practicing their habits (many good habits are listed in the book, e.g. choosing good variable/value names).</q></cite></span>
</li>
<li id="cite_note-ACM-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-ACM_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ACM_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://dl.acm.org/citation.cfm?id=1096143">"CC2 ISBN"</a>. 2015 ACM, Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.techbookreport.com/tbr0126.html">"Pan Pantziarka review"</a>. TechBookReport 2005<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://ddj.com/joltawards/prev_bks.htm#1993">Jolt winners 1993</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090525043039/http://www.ddj.com/joltawards/prev_bks.htm">Archived</a> 2009-05-25 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.eyrie.org/~eagle/reviews/books/0-7356-1967-0.html">"Russ Allbery Review Code Complete"</a>. 2015-01-05<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-06-28</span></span>. <q>I'm quite disappointed, since I'd heard nothing but praise for this book before picking it up. But it's not for me, and I'm now dubious of its value for any programmer outside of a fairly narrow, large-team, waterfall development process involving large numbers of people writing very large quantities of code in languages that aren't very expressive. And, well, in that situation I think one would get more benefit from changing that environment than reading this book.</q></cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stevemcconnell.com/books/">"Code Complete's 2nd edition website"</a>. Steven C. McConnell<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-10-17</span></span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.stevemcconnell.com/cc1.htm">"CC1"</a>. Construx Software<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-06-25</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.stevemcconnell.com/">Steve McConnell's website</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20230708132158/https://www.matthewjmiller.net/files/cc2e_checklists.pdf">Code Complete Checklists</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-10-14" href="https://en.wikipedia.org/wiki/?title=Code_Complete&oldid=1251138565">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>